GtkNotebook: emit child-notify::position a few more times
authorClaudio Saavedra <csaavedra@igalia.com>
Tue, 7 Feb 2012 16:02:15 +0000 (18:02 +0200)
committerClaudio Saavedra <csaavedra@igalia.com>
Fri, 10 Feb 2012 14:39:44 +0000 (16:39 +0200)
When moving a page around, all children changing their position
need to be notified.

There are still other places where proper notification is missing
(drag 'n drop, etc.)

https://bugzilla.gnome.org/show_bug.cgi?id=669116

gtk/gtknotebook.c

index ad2bd66fa3999490ecbc26d5316065f1e7564d81..5be5b7a3b8554bcc1e80d3811f0291c87ef27045 100644 (file)
@@ -7980,6 +7980,7 @@ gtk_notebook_reorder_child (GtkNotebook *notebook,
   GtkNotebookPage *page;
   gint old_pos;
   gint max_pos;
+  gint i;
 
   g_return_if_fail (GTK_IS_NOTEBOOK (notebook));
   g_return_if_fail (GTK_IS_WIDGET (child));
@@ -8015,7 +8016,12 @@ gtk_notebook_reorder_child (GtkNotebook *notebook,
 
   /* Move around the menu items if necessary */
   gtk_notebook_child_reordered (notebook, page);
-  gtk_widget_child_notify (child, "position");
+
+  for (list = priv->children, i = 0; list; list = list->next)
+    {
+      if (MIN (old_pos, position) <= i && i <= MAX (old_pos, position))
+       gtk_widget_child_notify (((GtkNotebookPage *) list->data)->child, "position");
+    }
 
   if (priv->show_tabs)
     gtk_notebook_pages_allocate (notebook);